Numerous types of spatial and temporal artifacts are characteristic of transform compressed digital video (i.e., MPEG-2, MPEG-4, VC-1, WM9, DIVX, etc.). Artifacts can include contouring (particularly noticeable in smooth luminance or chrominance regions), blockiness, mosquito noise, motion compensation and prediction artifacts, temporal beating, etc.
Less structured (or “random” noise) is more characteristic of analog video, which is familiar to consumers through broadcast TV (cable or terrestrial), VHS/PAL video cassette playback, and film grain. In fact, film producers may desire the “look and feel” of particular film grain artifacts as a very noticeable artistic effect. Even when random noise is not desirable as an artistic effect, the random noise may be much less visually disturbing than a similar amount of the structured noise that is characteristic of digital video.
Random noise can visually mask (or hide) other video artifacts. Two common reasons to add some type of random noise to video for display are: 1) to mask digital encoding artifacts and 2) to display film grain as an artistic effect. Conventional solutions for adding noise to video use noise that is either pre-generated or generated on-the-fly. The problem with pre-generated noise is storage. For HD video rates, storage commonly uses expensive on-chip memories in order to meet the high video rates. In order to reduce storage requirements, the amount (or period) of the noise may be so short that visible structure is apparent.
Because of the cost of storage, on-the-fly generated noise is preferable. At HD video rates, on-the-fly generation of noise typically uses a low-cost, low-complexity method for generating the noise. A low complexity method that is known for generating pseudo-random noise is a linear-feedback-shift-register (LFSR).
Conventional solutions do not integrate the noise addition into the video output path of a compressed video decoder. However, the ideal point at which to add noise is after all filtering has been performed on the reconstructed video, but before the video values/ranges are adjusted. This cannot be accomplished without noise addition that is integrated into the video output path of the compressed video decoder.
It would be desirable to have a method and/or apparatus for masking of video artifacts and/or insertion of film grain in a video decoder.